// 头文件
#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <time.h>
#include <pwd.h>
#include <grp.h>

int i = 1;
void merge_file(char const *argv[])
{
    // 以追加写打开文件
    int fd_1 = open(argv[i], O_WRONLY | O_APPEND);
    if (fd_1 == -1)
    {
        perror("fd_1");
    }
    int fd_2 = open(argv[i + 1], O_RDONLY); // 以只读取文件
    if (fd_1 == -1)
    {
        perror("fd_2");
    }
    // 定义一个临时缓存区
    char buf[1024];
    memset(buf, 0, sizeof(buf));
    int byte;
    // 光标移动到开头
    lseek(fd_2, 0, SEEK_SET);
    byte = read(fd_2, buf, sizeof(buf));
    if (byte == -1)
    {
        perror("read");
    }
    while ((byte = read(fd_2, buf, sizeof(buf))) > 0)
    {
        int num = write(fd_1, buf, sizeof(byte));
        if (num == -1)
        {
            perror("write ");
        }
    }
    close(fd_1);
    close(fd_2);
}

int main(int argc, char const *argv[])
{
    if (argc < 3)
    {
        printf("格式错误");
        return 0;
    }
    //    for ( ; i < argc; i++)
    //    {
    merge_file(argv);
    //    }

    return 0;
}
